package com.itheima.dao;

import com.itheima.entity.PageResult;
import com.itheima.pojo.Menu;
import com.itheima.pojo.Permission;
import com.itheima.pojo.Role;
import com.itheima.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author Gallant
 * @create 2020-07-10 14:47
 */
public interface RoleDao {
    // 通过User_id查询角色
    public Set<Role> findByUserId(Integer id);

    public List<Role> findAll();

    public List<Role> findByCondition(String queryString);

    // 添加角色
    public void  add(Role role);

    public void setRoleAndPermission(Map map);

    public void setRoleAndMenu(Map map);

    // 根据角色id查询对应的权限
    public List<Integer> findPermissionIdByRoleId(Integer id);

    // 根据角色id查询对应的菜单
    public List<Integer> findMenuIdByRoleId(Integer id);

    // 通过id查询角色信息
    public Role findById(Integer id);

    // 更新角色
    public void update(Role role);

    // 删除关联的权限
    public void deletePermissions(Integer id);

    // 删除关联的菜单
    public void deleteMenus(Integer id);

    // 根据角色id查询用户信息
    public List<User> findUserByRoleId(Integer id);

    // 删除角色表
    public void delete(Integer id);

    public void addPermissions(@Param("id") Integer id,@Param("permissionIds") Integer[] permissionIds);

    public void addMenuIds(@Param("id") Integer id, @Param("menuIds") Integer[] menuIds);
}
